package com.stu.mall.search.vo;

import lombok.Data;

import java.util.List;

/**
 *
 *
 *   封装页面所有可能传递过来的查询条件
 *   三种点击搜索的方式
 *   1、点击搜索：关键字   【skuTitle】
 *   2、点击分类：传catalog3Id
 *   3、选择筛选条件
 *        1、全文检索: skuTitle-》keyword
 *        2、排序: saleCount【销量】、hotScore【综合排序：热度评分】、skuPrice【价格】
 *        3、过滤: hasStock、skuPrice区间、brandld、catalog3ld、attrs
 *        4、聚合: attrs
 *            attrs=2_5寸 传参格式，所以直接for循环split("_")就可以得到attrId与attrValue
 *            attrs=1_白色:蓝色       然后值split(":")得到各项值attrValue
 *
 *
 * http://search.gmall.com/list.html?catalog3Id=225&keyword=小米&sort=saleCount_asc&skuPrice=1_500&brandId=1&brandId=2&attrs=1_其它:安卓&attrs=2_5.56英寸以上:5英寸
 *
 * 排序(单选)：
 *    销量：saleCount_asc/desc
 *    价格：salePrice_asc/desc
 *    热度评分：hostScope_asc/desc
 * 价格过滤：
 *    1-500：1_500
 *    500以内：_500
 *    500以上：500_
 * 属性：
 *   解释：（1号属性操作系统，其它，安卓）
 *    attrs=1_其它:安卓
 *    attrs=2_5.56英寸以上:5英寸
 *
 *
 * @Description: 封装页面所有可能传递过来的查询条件
 * @Created: with IntelliJ IDEA.
 * @author: admin
 * @createTime: 2020-06-13 14:17
 **/

@Data
public class SearchParam {

    /**
     * 页面传递过来的全文匹配关键字
     */
    private String keyword;
    /**
     * 三级分类id
     */
    private Long catalog3Id;
    /**
     * 品牌id,可以多选
     */
    private List<Long> brandId;
    /**
     * 排序条件：
     *    sort=price_desc
     *    sort=salecount_asc
     *    sort=hotscore_asc
     */
    private String sort;

    /**
     * 是否显示有货
     */
    private Integer hasStock;

    /**
     * 价格区间查询
     */
    private String skuPrice;

    /**
     * 按照属性进行筛选
     */
    private List<String> attrs;

    /**
     * 页码
     */
    private Integer pageNum = 1;

    /**
     * 原生的所有查询条件
     */
    private String _queryString;

}
